package com.github.bridge.request;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;

@Data
@EqualsAndHashCode(callSuper = true)
public class CreateUserAndSealDTO extends BaseDTO {
    @NotBlank(message = "用户不能为空")
    @Schema(description = "用户名称", requiredMode = Schema.RequiredMode.REQUIRED)
    private String name;

    @Schema(description = "是否加密 默认false", defaultValue = "false")
    private Boolean encrypt;

    @NotBlank(message = "证件类型不能为空")
    @Schema(description = "个人身份证件类型，支持类型如下：" +
            "MAINLAND - 大陆身份证（15位或者17位+1位校验位）" +
            "HONGKONG - 香港居民往来内地通行证（字母H或者h开头，后接8位或者10位数字）" +
            "MACAO - 澳门居民往来内地通行证（字母M或者m开头，后接8位或者10位数字）" +
            "TAIWAN - 台湾居民来往大陆通行证（8位或者10位数字）" +
            "PASSPORT - 护照（e签宝校验规则：1-25位的大小写字母或者数字组合）" +
            "OTHER - 其他类型（不校验证件格式）", requiredMode = Schema.RequiredMode.REQUIRED)
    private String idNoType;

    @NotBlank(message = "证件号码不能为空")
    @Schema(description = "证件号码", requiredMode = Schema.RequiredMode.REQUIRED)
    private String idNo;

    @Schema(description = "印章模板类型 SQUARE-正方形印章 RECTANGLE-矩形印章 BORDERLESS-无框矩形印章 ", defaultValue = "SQUARE", allowableValues = {"SQUARE", "RECTANGLE", "BORDERLESS"}, requiredMode = Schema.RequiredMode.REQUIRED)
    private String type;

    @Schema(description = "生成印章的颜色 枚举：（1）RED，红色 （2）BLUE，蓝色 （3）BLACK，黑色", defaultValue = "RED", allowableValues = {"RED", "BLUE", "BLACK"}, requiredMode = Schema.RequiredMode.REQUIRED)
    private String color;

    @Schema(description = "印章是否加“印”规则 SEAL_NONE，无‘印’ SEAL_ONE，带‘印’ SEAL_TWO，带‘之印’", defaultValue = "SEAL_NONE", allowableValues = {"SEAL_NONE", "SEAL_ONE", "SEAL_TWO"}, requiredMode = Schema.RequiredMode.REQUIRED)
    private String stampRule;
}
